Cover TOC Chap Prev Chap Prev Fig Next Fig Next Chap

Chapter 19: Controlling Shading

../ch19/19fig27.gif
Figure 19.27

A square face and animated normals.

19fig27.wrl
Click on the image to view the VRML scene.

#VRML V2.0 utf8
# The VRML 2.0 Sourcebook
# Copyright (c) 1997
# Andrea L. Ames, David R. Nadeau, and John L. Moreland
Group {
    children [
    # Animated shape
        Shape {
            appearance Appearance {
                material Material { }
            }
            geometry IndexedFaceSet {
                coord Coordinate {
                    point [
                        -1.0 -1.0  0.0,   1.0 -1.0  0.0,
                         1.0  1.0  0.0,  -1.0  1.0  0.0,
                    ]
                }
                normal DEF AnimNorm Normal {
                    vector [
                        0.0  0.0  1.0,   0.0  0.0  1.0,
                        0.0  0.0  1.0,   0.0  0.0  1.0,
                    ]
                }
                coordIndex  [ 0, 1, 2, 3 ]
                normalIndex [ 0, 1, 2, 3 ]
                normalPerVertex TRUE
            }
        },
    # Animation clock
        DEF Clock TimeSensor {
            cycleInterval 4.0
            loop TRUE
        },
    # Animation normals
        DEF NormPath NormalInterpolator {
            key [ 0.0, 0.5, 1.0 ]
            keyValue [
            # time 0.0 normals
                0.0  0.0  1.0,   0.0  0.0  1.0,
                0.0  0.0  1.0,   0.0  0.0  1.0,
            # time 0.5 normals
                0.0  0.0  1.0,   1.0  0.0  0.0,
                1.0  0.0  0.0,   0.0  0.0  1.0,
            # time 1.0 normals
                0.0  0.0  1.0,   0.0  0.0  1.0,
                0.0  0.0  1.0,   0.0  0.0  1.0,
            ]
        }
    ]
}
ROUTE Clock.fraction_changed TO NormPath.set_fraction
ROUTE NormPath.value_changed TO AnimNorm.set_vector